Introdução

O procedimento abaixo percorre o caminho para baixar, limpar e organizar as decisões do Supremo Tribunal Federal sobre a ação de reclamação. Para realizar este procedimento, utilizou-se um conjunto de rotinas de computador. Esse conjunto de rotinas foi criado dentro da linguagem de programação estatística R. A cada uma das rotinas é dado um nome. Esses nomes são agrupados no aplicativo conhecido como package (pacote de funções) de uma determinada linguagem de programação. A esse pacote também é dado um nome, que no caso se chama stf. Uma vez incorporadas num aplicativo, as rotinas, doravante chamadas de funções, podem ser facilmente reutilizadas, bastando chamá-las pelo nome e informar os argumentos para sua execução dentro de parenteses.

O pacote construído a partir da presente pesquisa assegura replicabilidade e reproducibilidade. As pesquisas científicas atuais, especialmente as quantitativas, caminham no sentido de garantir a reproducibilidade, isto é, o caminho percorrido pelo pesquisador no processo de coleta, organização, exploração e análise dos dados, pode ser reproduzido por qualquer outro pesquisador que tenha familiaridade com o programa utilizado. Reproducibilidade significa usar os mesmos dados e a mesma análise (códigos e modelos) e chegar aos mesmos resultados. Replicabilidade significa aproveitar o mesmo método (código e análise) para aplicá-los a novos dados.

O R é uma linguagem de programação de código aberto e gratuita. Igualmente, o pacote stf, criado ao londo desta pesquisa, é livre acesso. Para acessá-lo, basta clicar no seguinte link. Ali se encontram as orientações sobre como utilizá-lo.

O pacote stf foi construído pensando não somente em viabilizar a presente pesquisa, mas também em oferecer a acadêmicos de direito, de estatística e de ciência da computação, ferramentas para condução de suas análises sobre a atuação do Supremo Tribunal Federal. Nesse sentido, entendemos que este é um valioso subproduto da presente pesquisa de doutorado.

Pacotes necessários

install.packages(c("devtools","tidyverse","janitor","quanteda"))


devtools::install_github("jjesusfilho/stf")
library(stf)
library(tidyverse)
library(janitor)

Coleta

Baixar o acervo do STF

O acervo de decisões do STF é composto por três grupos de decisões: monocráticas, correspondentes às decisões individuais dos ministros; colegiadas, correspondentes às decisões das turmas e do pleno; presidente, correspondentes as decisões do presidente. A função abaixo irá baixar todo o acervo de decisões do STF correspondente aos anos indicados e o tipo de decisão.

download_stf_collection(decision_type = "monocraticas",years = 2011:2018,dir = "monocraticas")
download_stf_collection(decision_type = "colegiadas",years = 2011:2018,dir = "colegiadas")
download_stf_collection(decision_type = "presidente",years = 2011:2018,dir = "presidente")

Ler o acervo

A função abaixo importa o acervo conforme a classe processuale os anos indicados. Esta função já faz o trabalho inicial de limpar a base de alguns elementos desnecessários e criar uma coluna chamada “incidente”, que é extraída do hyperlink.

monocraticas <- read_stf_collection(classes = "Rcl",years = 2011:2018,dir = "monocraticas")
colegiadas <- read_stf_collection(classes = "Rcl",years = 2011:2018,dir = "colegiadas")
presidente <- read_stf_collection(classes = "Rcl",years = 2011:2018,dir = "presidente")

Junção das bases

Antes de seguir para os próximos passos, temos de juntar essas três bases e selecionar os processos únicos, de modo a reduzir o número de requisições de processos nos passos seguintes.

acervo <- bind_rows(monocraticas,colegiadas, presidente)

numeros <- unique(acervo$numero)

Os números revelam que houve 22532 reclamações julgadas pelo Supremo Tribunal Federal entre janeiro de 2011 e dezembro de 2018.

Remover colunas não utilizadas

Para esta análise específica, somente algumas colunas são de interesse. O procedimento abaixo seleciona tais colunas.

acervo <- acervo %>% 
  select(classe,numero,data_autuacao,relator_atual,tipo_decisao,orgao_julgador,data_andamento)

Baixar os processos

A maneira mais rápida de baixar os processos seria por meio da coluna incidente. No entanto, notou-se que nem sempre o hiperlink, do qual é extraído o número do incidente, existe. Dessa forma, optou-se utilizar o número do processo na busca. A função abaixo realiza esta busca no portal do STF.

Esta busca poderá demorar bastante tempo porque são necessárias múltiplas requisições para cada um dos processos, correspondentes aos detalhes básicos que aparecem no topo das informações processuais e às oito abas.

Esta função irá criar nove pastas dentro do diretório indicado, correspondentes às oito abas mais a pasta com os detalhes (metadados). Veja que para baixar esses arquivos, é necessário ter lido o acervo antes, pois utilizaremos as colunas classe e número para baixá-los.

download_stf_dockets(classes = "Rcl",docket_number = numeros)

Lendo as informações processuais.

Das nove pastas, quatro delas são de especial interesse: detalhes, andamentos, partes e informações. Para a nossa análise, as demais são dispensáveis.

detalhes <- read_stf_details(path = "detalhes", plan = "multicore")

andamentos <- read_stf_docket_sheet(path = "andamentos", plan = "multicore")

informacoes <- read_stf_information(path = "informacoes", plan = "multicore")

partes <- read_stf_parties(path = "partes", plan = "multicore")

Transformação

Delimitação do escopo

Conforme explicitado no desenho metodológico, a presente pesquisa visa analisar as decisões de mérito do Supremo Tribunal Federal em casos com trânsito em julgado sobre pedidos de reclamação contra órgãos jurisdicionais entre os anos de 2011 e 2018, com exceção daquelas que versam sobre a competência do STF. Para realizar esse filtro, é necessária a utilização tanto de automação, vez que são mais de 22 mil processos, como também de métodos manuais, para aqueles casos em que a automação não for suficiente para extrair as informações relevantes.

Sobre o uso de métodos automatizados de mineração e classificação de texto, observa-se que textos, nesse caso, decisões judiciais, são dados não estruturados. Com os avanços dos processos de automação na leitura e extração de dados, bem como, dos processos de classificação por meio do uso de inteligência artificial (deep learning), surgiram possibilidades de análise que antes não eram possíveis.

No entanto, o uso de computação para ler e classificar textos está longe de atingir a qualidade do processo humano. Como bem afirmam (Grimmer and Stewart 2013), os métodos quantitativos de classificação de texto ampliam a atividade humana, não a substituem. Além disso, não existe um método global de análise automatizada. Por fim, a classificação automatizada deve ser validada por meio de revisão humana. A técnica adotada é tirar uma amostra de algumas dezenas de casos e submeter à leitura humana para verificar se houve erros e, em caso afirmativo, se o número é muito grande.

Remoção dos casos que não serão analisados.

Primeiramente iremos remover três grupos de casos. Aqueles que não transitaram em julgado no momento da análise, aqueles que correm em segredo de justiça e aqueles cujo reclamado não é órgão judicial. A informação sobre o trânsito em julgado se encontra no andamento. A informação sobre o segredo de justiça se encontra nos detalhes.

transitado <- andamentos %>% 
  filter(str_detect(titulo,"(?i)transitado")) %>% 
  pull("incidente") %>% 
  unique()

publico <- detalhes %>% 
  filter(!str_detect(sigilo,"Segredo de Justiça")) %>% 
  pull("incidente") %>% 
  unique()

Para manter somente os casos em que o reclamado é órgão judicial, utilizaremos a função classify_respondent() do pacote stf . Além de excluir os casos em que o respondente não é órgão judicial, ela classifica o órgão judicial conforme a instância e o segmento do Poder Judiciário ao qual pertence.

A classificação é bem sucedida na maioria dos casos, porém restaram algumas ambiguidades, relacionadas aos conselhos superiores dos tribunais de justiça, que ora decidem jurisdicionalmente, ora administrativamente.

partes <- stf::classify_respondent(partes)

remover_conselhos <- conselhos %>%
  select(c(1,4,5)) %>%
  slice(38:57) %>%
  setNames(c("reclamados","incidente","acao")) %>%
  filter(acao=="EXCLUIR")


remover_conselhos[2,1]<-"CONSELHO DA MAGISTRATURA DO TRIBUNAL DE JUSTIÇA DO ESTADO DO RIO GRANDE DO SUL"

partes <- partes %>%
  dplyr::filter(!is.element(incidente,remover_conselhos$incidente),!is.element(reclamado,remover_conselhos$reclamados))

partes <- partes %>%
  filter(instancia!="outros") %>%
  filter(segmento!="outros")

Por fim, verificamos que na base andamentos há movimentações que foram invalidadas. A função de leitura dos andamentos cria uma coluna indicando se a movimentação foi invalidada ou não. O que temos de fazer é simplesmente remover tais linhas da base andamentos.

andamentos <- andamentos %>% 
  filter(!invalido)

Baixar textos das decisões

Para baixar os textos das decisões, criamos duas funções, uma que baixa os textos em rtf, outra que baixa os textos em pdf. As urls dos textos estão contidas na base andamentos. Acontece que nem todos os textos se referem a decisões de mérito. Alguns são pareceres do Ministério Público, outros são meros despachos, outros são decisões interlocutórias ou apreciação de liminar ou cautelar. No entanto, a base andamento nem sempre é suficientemente informativa a respeito. Por essa razão, optamos por baixar todos os textos e, posteriormente, realizar as exclusões.

dir.create("textos_rtf")
dir.create("textos_pdf")
stf::download_stf_pdf(andamentos,"textos_pdf")
stf::download_stf_rtf(andamentos,"textos_rtf")

textos_rtf <- stf::read_stf_rtf("textos_rtf")
textos_pdf <- stf::read_stf_pdf("textos_pdf")
texto <- bind_rows(textos_rtf,textos_pdf)

Limpeza dos textos

Os textos das decisões são usados para identificar casos que devem ser excluídos. Por exemplo, processos em que não houve decisão de mérito, tais como decisões terminativas sem julgamento de mérito, processos extintos e prejudicados seja por inércia da parte, seja por perda do objeto.

Além disso, a decisão contida na base acervo nem sempre corresponde à real decisão sobre reclamação, pois os técnicos do STF simplesmente extraem a última decisão do andamento, a qual por vez é um mero despacho. Igualmente o título do andamento nem sempre são úteis. Por vezes, apenas indicava que se tratatava de uma publicação no diário de justiça.

Por essa razão, optou-se por extrair dos próprios textos a parte que corresponde à decisão, isto é, extraímos os últimos 800 caracteres do texto, que provavelmente contêm a decisão. Antes, porém, excluímos do texto as informações sobre quem assinou o documento.

Ademais, cortamos essa parte a partir de palavras chave tais como ex positis, diante do exposto etc. Com isso, foi possível verificar se a decisão se tratava de liminar ou cautelar, se era um mero despacho concedendo vista ou uma cerdidão. Algumas palavras no início do texto indicavam se ele era um parecer do MP, se era um embargo de declaração ou se era um agravo regimental. Quando não foi possível identificar no início, foi possível fazê-lo no final do texto.

Alguns embargos foram convertidos em agravo regimental. A identificação desses casos também foi necessária.

texto <- texto %>%
  unite("docname",extensao,docid,sep="") %>%
  inner_join(andamentos,by="docname")

texto <- texto %>%
  mutate(caracteres=nchar(texto))


texto <- texto %>%
  mutate(texto=str_remove_all(texto,"(?i)documento assinado\\X+?(sob|por)\\s\\w+"))


texto <- texto %>%
  mutate(texto = str_squish(texto))



texto <- texto %>%
  mutate(dispositivo = case_when(
    caracteres > 800 ~{
      stringi::stri_reverse(texto) %>%
        stringi::stri_extract_first_regex("\\X{800}") %>%
        stringi::stri_reverse()
    },
    TRUE ~ texto))



texto <- texto %>%
  mutate(dispositivo=case_when(
    str_detect(texto1,"(?i)(antes? o exposto|ex positis|diante disso|ante o quadro|pelo exposto|diante do exposto|nesse contexto|diante do contexto|por es[st]a razão|pelas razões expostas|por todo o exposto|dessa forma|decis.o:|com essas considerações|nessas condições|sendo assim|face ao exposto|do exposto)") ~{
      str_extract(dispositivo,"(?i)(antes? o exposto|ex positis|diante disso|ante o quadro|pelo exposto|diante do exposto|nesse contexto|diante do contexto|por es[ts]a razão|pelas razões expostas|por todo o exposto|dessa forma|decis.o:|com essas considerações|nessas condições|sendo assim|face ao exposto|do exposto).+")
    },
    TRUE ~ dispositivo))


texto <- texto %>%
  filter(!str_detect(dispositivo,"(?i)defiro a liminar"))

texto <- texto %>%
  mutate(exclusoes = str_extract(texto,"\\X{80}")) %>%
  # filter(!str_detect(cautelar,"MEDIDA CAUTELAR")) %>%
  filter(!str_detect(exclusoes,"(?i)(^Documento|^MINISTÉRIO|^procurador)")) %>%
  filter(!str_detect(exclusoes,"EMB.DECL.")) %>%
  filter(!str_detect(doc,"(?i)(PGR|despacho|certid.o|vista)")|is.na(doc)) %>%
  select(-exclusoes)

Classificação dos textos conforme provimento ou improvimento

O procedimento abaixo classifica os textos das decisões conforme provimento ou improvimento. O trabalho aqui foi recortar as decisões que eram de mérito. Para tanto, aplicamos a técnica de expressões regulares (regex) para identificar padrões nos textos dos dispositivos.

Todo esse trabalho de identificação é heurístico e requer a conjunção de esforços de automação e validação pelo pesquisador. Uma técnica de processamento de linguagem natural muito útil é conhecida como “kwic” (key word in context). Por ela, buscamos uma palavra-chave, e.g., “procedente” em seu contexto, isto é, verificamos todas as vezes que esta palavra aparece no dispositivo e quais as palavras que a antecedem ou que a sucedem. Este procedimento permite observar padrões tais como “não procedente” ou “julgo procedente”. A experiência com classificações em outras pesquisas tem nos permitido reduzir significativamente as chances de erro.

Mesmo quando ocorrem alguns erros, esses são mínimos e podem ser verificados por outros meios, tais como a verificação da consistência da base. Por exemplo, um texto erroneamente classificado como decisão de agravo deve ser contrastado com o tipo de decisão. Se esta foi uma decisão monocrática, claramente não se trata de um agravo.

Por fim, uma particularidade do STF é o uso da expressão “nego seguimento” ora par indicar “improcedência”, ora para indicar uma decisão terminativa sem julgamento do mérito. Esse aspecto representou uma dificuldade a mais, pois foi necessário encontrar outras palavras que indicassem quando a expressão estava sendo usada para julgamento de mérito, e.g. “aderência” ou quando definitivamente não era de mérito, e.g, “súmula 734” ou “sucedâneo” e “atalho”.

Diante da dúvida se a decisão era de mérito ou não, preferiu-se excluí-la. Ao final, depois de todas as exclusões e aplicações de filtros, chegou-se a 5636 casos. Uma amostra foi retirada para realização de validação humana. Não foi identificado nenhum erro. Isso não signfica que a base está isenta de erros de classificação, mas a pesquisadora está segura de que se estes ocorreram, eles foram mínimos e não afetarão significativamente os resultados.

Ainda assim, a próxima etapa da análise, denominada “Exploratory Data Analysis” permite verificar inconsistências ou disparidades nas distribuições e anomalias nos dados. Novas correções são possíveis nesse momento.

texto <- texto  %>%
  dplyr::mutate(decisao = stringi::stri_trans_tolower(dispositivo),
                decisao = abjutils::rm_accent(decisao),
                decisao = case_when(
                  str_detect(decisao,"(nego|negado|negou)\\sseguimento") ~ "nego seguimento",
                  str_detect(decisao,"(desprov\\w+|improv\\w+|improced\\w+)") ~ "improvido",
                  str_detect(decisao,"(nao|nega\\w+)\\s+provi.*")~ "improvido",
                  str_detect(decisao,"(rejeit\\w+|inadmitidos?)") ~ "improvido",
                  str_detect(decisao,"mantiveram") ~ "improvido",
                  str_detect(decisao,"(acolho|acolhido)") ~ "provido",
                  str_detect(decisao,"(deram|da\\-*\\s*se|dando\\-*(se)*|comporta|dou|confere\\-se|se\\s*\\-*da|merece)\\sprovi\\w+") ~ "provido",
                  str_detect(decisao,"parcial\\w*\\sprovimento") ~ "provido",
                  str_detect(decisao,"(nao\\sderam|nao\\smerece|se\\snega|nega\\-*\\s*se|negar\\-*\\s*lhe|nao\\scomporta|negram|negararam|nego|negar|negou)") ~ "improvido",
                  str_detect(decisao,"\\bprovimento") ~ "provido",
                  str_detect(decisao,"\\bprocedente") ~ "provido",
                  str_detect(decisao,"(nao\\sconhec\\w+|nao\\sse\\sconhec\\w+)") ~ "não conhecido",
                  str_detect(decisao,"desconh\\w+") ~ "desconhecido",
                  str_detect(decisao,"nao\\s+conhec\\w+") ~ "desconhecido",
                  str_detect(decisao,"(homolog|desistencia)") ~ "desistência",
                  str_detect(decisao,"diligencia") ~ "conversão em diligência",
                  str_detect(decisao,"sobrest") ~ "sobrestado",
                  str_detect(decisao,"prejudicad\\w*") ~ "prejudicado",
                  str_detect(decisao,"(anular\\w*|nulo|nula|nulidade)") ~ "anulado",
                  TRUE ~ "outros"))

texto <- texto %>%
  mutate(decisao = case_when(
    decisao == "provido" ~ "procedente",
    decisao == "improvido" ~ "improcedente",
    TRUE ~ decisao
  ))

improcedente <- texto %>%
  filter(decisao == "improcedente")

procedente <- texto %>%
  filter(decisao == "procedente")

seguimento <- texto %>%
  filter(decisao=="nego seguimento")


prejudicado<-texto %>%
  filter(decisao=="prejudicado/extinto")

sobrestado <- texto %>%
  filter(decisao=="sobrestado")


outros <- texto %>%
  filter(decisao=="outros")


sucedaneo <- seguimento %>%
  select(texto,docname) %>%
  quanteda::corpus("docname","texto") %>%
  quanteda::kwic("(?i)(suced[aâ]neo|\\bpresta\\b|atalho)",window = 20,valuetype = "regex") %>%
  as_tibble()

sucedaneo<-sucedaneo %>%
  filter(keyword!="presta-se") %>%
  pull("docname") %>%
  unique()

seguimento <- seguimento %>%
  filter(!docname %in% sucedaneo)


sumula_734 <- seguimento %>%
  filter(str_detect(texto,"\\b734\\b")) %>%
  pull("docname") %>%
  unique()

seguimento <- seguimento %>%
  filter(!docname %in% sumula_734)

aderencia <- seguimento %>%
  select(texto,docname) %>%
  quanteda::corpus("docname","texto") %>%
  quanteda::kwic("(?i)ader.ncia",window = 20,valuetype = "regex") %>%
  as_tibble()

Análise exploratória de dados

Realizado o trabalho de coleta, limpeza e organização dos dados, a etapa seguinte é conduzir a análise exploratória de dados (EDA na sigla em inglês). A análise exploratória de dados visa dar a conhecer a estrutura subjacente dos dados e expor um conjunto de informações acerca dos dados a fim de que a pesquisadora passa tomar passos adiante ou atrás no processo de análise. Igualmente, ela fornece um sumário descritivo. Segundo (Pearson 2018), a análise exploratória dos dados coletados sobre as reclamações ao STF busca responder as seguintes questões:

  1. Quantos registros a base de dados sobre reclamações contêm? (Isto é, quantas decisões do STF sobre reclamações estão sendo analisadas)
  2. Quantas colunas, i.e, variáveis, estão incluídas em cada um dos registros?
  3. Que tipo de variáveis são essas? (i.e. numéricas, categóricas, contínuas, discretas?)
  4. Esses dados foram todos observados? (i.e. há dados faltantes, há outliers?)
  5. As variáveis incluídas na base são aquelas que nós realmente estávamos esperando?
  6. Os valores contidos nas variáveis são consistentes?, i.e. número de categorias, categorias corretas etc, ?
  7. As associações entre as variáveis são aquelas que esperávamos? 7.1 Por exemplo, podemos esperar que o CPC 2015 elevou o número de procedência dos pedidos? 7.2 Podemos esperar diferenças entre os ministros quanto ao número de casos procedentes ou não?

É importante destacar que a análise exploratória é útil para verificar a associação entre as variáveis, particularmente entre as variáveis preditoras e a variável resposta. Inclusive iremos realizar alguns testes de associação, e.g, chi-quadrado, de força dessas associações (WOE) e mesmo capacidade preditiva das variáveis explicativas. No entanto, é fundamental tomar em conta que os testes de associação e de significância, tal como o teste do chi-quadrado e o t-test, não informam nada sobre o efeito marginal de cada uma das variáveis explicativas sobre a variável resposta. Em pesquisas experimentais, isso é perfeitamente possível porque o pesquisador possui controle preciso sobre os fatores que causam ou modificam o resultado obtido. Por sua vez, as pesquisas em ciências sociais se caracterizam por serem observacionais e a pesquisadora não possui controle apriorístico sobre o efeito de uma variável sobre a outra. Ela precisa precisa considerar outros fatores que afetam o resultado para assim isolar o efeito de cada uma das variáveis explicativas sobre o resultado(Silva 2018).

Na pesquisa em tela, estamos diante de dados observacionais. O esforço é dirigido em identificar todos os possíveis fatores que influenciam a resposta judicial ao pedido. Nesse sentido, os testes de associação bivariados são inadequados porque irão superdimensionar o efeito de uma variável sobre a outra. A tarefa, a qual será executada na próxima seção, será de isolar o efeito de cada uma das variáveis explicativas sobre a variável resposta: decisão judicial. Com efeito, podemos supor que o ministro A julgará diferentemente o pedido de reclamação quando se tratar de uma alegada violação a uma súmula do STF do que quando se tratar de uma violaçã a uma decisão inter partes ou que uma reclamação contra decisão da justiça do trabalho tem maior probabilidade de ter uma resposta favorável quando o ministro é fulano do que quando este é beltrano. Esse tipo de controle somente é posssível realizar por meio das técnicas de regressão, pois o objetivo destas é justamente isolar o efeito de cada uma das variáveis sobre os resultado.

Estatísticas das variáveis

rcl_dataset <- readRDS("../data/rcl_dataset.rds")
(
  descricao1 <- ExpData(rcl_dataset,1) %>% 
setNames(c("Descrições","Registros"))
)
##                                   Descrições   Registros
## 1                         Sample size (Nrow)        6370
## 2                    No. of Variables (Ncol)          18
## 3                   No. of Numeric Variables           0
## 4                    No. of Factor Variables          15
## 5                      No. of Text Variables           1
## 6                   No. of Logical Variables           0
## 7                      No. of Date Variables           2
## 8   No. of Zero variance Variables (Uniform)           0
## 9      %. of Variables having complete cases 88.89% (16)
## 10 %. of Variables having <50% missing cases  11.11% (2)
## 11 %. of Variables having >50% missing cases      0% (0)
## 12 %. of Variables having >90% missing cases      0% (0)
(
descricao2<-ExpData(rcl_dataset,2) %>% 
  select(-1) %>% 
  setNames(c("Nome da variável","Tipo de variável","% dados faltantes","No. valores únicos"))
)
##      Nome da variável Tipo de variável % dados faltantes
## 1          incidente*        character                 0
## 2    data_andamento**             Date                 0
## 3            decisao*           factor                 0
## 4             agravo*           factor                 0
## 5     orgao_julgador*           factor                 0
## 6           novo_cpc*           factor                 0
## 7                adc*           factor                 0
## 8                adi*           factor                 0
## 9               adpf*           factor                 0
## 10                re*           factor                 0
## 11            sumula*           factor                 0
## 12           assunto*           factor              0.02
## 13          segmento*           factor                 0
## 14         instancia*           factor                 0
## 15              area*           factor              0.01
## 16         paradigma*           factor                 0
## 17 efeito_vinculante*           factor                 0
## 18    data_autuacao**             Date                 0
##    No. valores únicos
## 1                5479
## 2                1109
## 3                   2
## 4                   2
## 5                  13
## 6                   2
## 7                   2
## 8                   2
## 9                   2
## 10                  2
## 11                  2
## 12                  9
## 13                  5
## 14                  3
## 15                 17
## 16                  4
## 17                  2
## 18               2015
(
frequencias <- ExpCTable(rcl_dataset,Target="decisao",margin=1,clim=10,nlim=NULL,round=2,bin=NULL,per=T) %>% 
  setNames(c("Variável","Categoria","Número","decisao:improcedente","decisao:procedente","TOTAL"))
)
##             Variável                      Categoria Número
## 1             agravo                            não     nn
## 2             agravo                            sim     nn
## 3             agravo                          TOTAL     nn
## 4             agravo                            não      %
## 5             agravo                            sim      %
## 6             agravo                          TOTAL      %
## 7           novo_cpc                       CPC/1973     nn
## 8           novo_cpc                       CPC/2015     nn
## 9           novo_cpc                          TOTAL     nn
## 10          novo_cpc                       CPC/1973      %
## 11          novo_cpc                       CPC/2015      %
## 12          novo_cpc                          TOTAL      %
## 13               adc                            não     nn
## 14               adc                            sim     nn
## 15               adc                          TOTAL     nn
## 16               adc                            não      %
## 17               adc                            sim      %
## 18               adc                          TOTAL      %
## 19               adi                            não     nn
## 20               adi                            sim     nn
## 21               adi                          TOTAL     nn
## 22               adi                            não      %
## 23               adi                            sim      %
## 24               adi                          TOTAL      %
## 25              adpf                            não     nn
## 26              adpf                            sim     nn
## 27              adpf                          TOTAL     nn
## 28              adpf                            não      %
## 29              adpf                            sim      %
## 30              adpf                          TOTAL      %
## 31                re                            não     nn
## 32                re                            sim     nn
## 33                re                          TOTAL     nn
## 34                re                            não      %
## 35                re                            sim      %
## 36                re                          TOTAL      %
## 37            sumula                            não     nn
## 38            sumula                            sim     nn
## 39            sumula                          TOTAL     nn
## 40            sumula                            não      %
## 41            sumula                            sim      %
## 42            sumula                          TOTAL      %
## 43           assunto                          CIVIL     nn
## 44           assunto             CIVIL E CONSUMIDOR     nn
## 45           assunto                     CONSUMIDOR     nn
## 46           assunto              DIREITO DO ESTADO     nn
## 47           assunto                             NA     nn
## 48           assunto         PENAL E PROCESSO PENAL     nn
## 49           assunto PROCESSUAL CIVIL E DO TRABALHO     nn
## 50           assunto                       TRABALHO     nn
## 51           assunto      TRABALHO E PREVIDENCIÁRIO     nn
## 52           assunto                          TOTAL     nn
## 53           assunto                          CIVIL      %
## 54           assunto             CIVIL E CONSUMIDOR      %
## 55           assunto                     CONSUMIDOR      %
## 56           assunto              DIREITO DO ESTADO      %
## 57           assunto                             NA      %
## 58           assunto         PENAL E PROCESSO PENAL      %
## 59           assunto PROCESSUAL CIVIL E DO TRABALHO      %
## 60           assunto                       TRABALHO      %
## 61           assunto      TRABALHO E PREVIDENCIÁRIO      %
## 62           assunto                          TOTAL      %
## 63          segmento                      eleitoral     nn
## 64          segmento                       estadual     nn
## 65          segmento                        federal     nn
## 66          segmento                            stj     nn
## 67          segmento                       trabalho     nn
## 68          segmento                          TOTAL     nn
## 69          segmento                      eleitoral      %
## 70          segmento                       estadual      %
## 71          segmento                        federal      %
## 72          segmento                            stj      %
## 73          segmento                       trabalho      %
## 74          segmento                          TOTAL      %
## 75         instancia                       primeira     nn
## 76         instancia                        segunda     nn
## 77         instancia                       superior     nn
## 78         instancia                          TOTAL     nn
## 79         instancia                       primeira      %
## 80         instancia                        segunda      %
## 81         instancia                       superior      %
## 82         instancia                          TOTAL      %
## 83         paradigma           controle_concentrado     nn
## 84         paradigma                   inter_partes     nn
## 85         paradigma                           rext     nn
## 86         paradigma                         sumula     nn
## 87         paradigma                          TOTAL     nn
## 88         paradigma           controle_concentrado      %
## 89         paradigma                   inter_partes      %
## 90         paradigma                           rext      %
## 91         paradigma                         sumula      %
## 92         paradigma                          TOTAL      %
## 93 efeito_vinculante                 nao_vinculante     nn
## 94 efeito_vinculante                     vinculante     nn
## 95 efeito_vinculante                          TOTAL     nn
## 96 efeito_vinculante                 nao_vinculante      %
## 97 efeito_vinculante                     vinculante      %
## 98 efeito_vinculante                          TOTAL      %
##    decisao:improcedente decisao:procedente   TOTAL
## 1               1793.00            2579.00 4372.00
## 2               1892.00             106.00 1998.00
## 3               3685.00            2685.00 6370.00
## 4                 48.66              96.05   68.63
## 5                 51.34               3.95   31.37
## 6                100.00             100.00  100.00
## 7               1966.00            1822.00 3788.00
## 8               1719.00             863.00 2582.00
## 9               3685.00            2685.00 6370.00
## 10                53.35              67.86   59.47
## 11                46.65              32.14   40.53
## 12               100.00             100.00  100.00
## 13              3644.00            2680.00 6324.00
## 14                41.00               5.00   46.00
## 15              3685.00            2685.00 6370.00
## 16                98.89              99.81   99.28
## 17                 1.11               0.19    0.72
## 18               100.00             100.00  100.00
## 19              2506.00            1985.00 4491.00
## 20              1179.00             700.00 1879.00
## 21              3685.00            2685.00 6370.00
## 22                68.01              73.93   70.50
## 23                31.99              26.07   29.50
## 24               100.00             100.00  100.00
## 25              3489.00            2539.00 6028.00
## 26               196.00             146.00  342.00
## 27              3685.00            2685.00 6370.00
## 28                94.68              94.56   94.63
## 29                 5.32               5.44    5.37
## 30               100.00             100.00  100.00
## 31              3204.00            2374.00 5578.00
## 32               481.00             311.00  792.00
## 33              3685.00            2685.00 6370.00
## 34                86.95              88.42   87.57
## 35                13.05              11.58   12.43
## 36               100.00             100.00  100.00
## 37              3044.00            2309.00 5353.00
## 38               641.00             376.00 1017.00
## 39              3685.00            2685.00 6370.00
## 40                82.61              86.00   84.03
## 41                17.39              14.00   15.97
## 42               100.00             100.00  100.00
## 43                67.00               9.00   76.00
## 44                 5.00               3.00    8.00
## 45                26.00              19.00   45.00
## 46               841.00             424.00 1265.00
## 47                87.00              31.00  118.00
## 48               347.00             199.00  546.00
## 49              1449.00            1062.00 2511.00
## 50                80.00               5.00   85.00
## 51               783.00             933.00 1716.00
## 52              3685.00            2685.00 6370.00
## 53                 1.82               0.34    1.19
## 54                 0.14               0.11    0.13
## 55                 0.71               0.71    0.71
## 56                22.82              15.79   19.86
## 57                 2.36               1.15    1.85
## 58                 9.42               7.41    8.57
## 59                39.32              39.55   39.42
## 60                 2.17               0.19    1.33
## 61                21.25              34.75   26.94
## 62               100.00             100.00  100.00
## 63                32.00               3.00   35.00
## 64              1376.00             552.00 1928.00
## 65               377.00             223.00  600.00
## 66               153.00              40.00  193.00
## 67              1747.00            1867.00 3614.00
## 68              3685.00            2685.00 6370.00
## 69                 0.87               0.11    0.55
## 70                37.34              20.56   30.27
## 71                10.23               8.31    9.42
## 72                 4.15               1.49    3.03
## 73                47.41              69.53   56.73
## 74               100.00             100.00  100.00
## 75              1080.00             637.00 1717.00
## 76              1915.00            1498.00 3413.00
## 77               690.00             550.00 1240.00
## 78              3685.00            2685.00 6370.00
## 79                29.31              23.72   26.95
## 80                51.97              55.79   53.58
## 81                18.72              20.48   19.47
## 82               100.00             100.00  100.00
## 83              1255.00             738.00 1993.00
## 84              1638.00            1441.00 3079.00
## 85               286.00             218.00  504.00
## 86               506.00             288.00  794.00
## 87              3685.00            2685.00 6370.00
## 88                34.06              27.49   31.29
## 89                44.45              53.67   48.34
## 90                 7.76               8.12    7.91
## 91                13.73              10.73   12.46
## 92               100.00             100.00  100.00
## 93              1638.00            1441.00 3079.00
## 94              2047.00            1244.00 3291.00
## 95              3685.00            2685.00 6370.00
## 96                44.45              53.67   48.34
## 97                55.55              46.33   51.66
## 98               100.00             100.00  100.00

Valor da informação e peso de evidência

Em análise de respostas binárias, duas medidas muito utilizadas nas análises para concessão de crédito, mas quase desconhecidas nas demais áreas, são o peso da evidência e o valor da informação (WOE e IV nas siglas em inglês). Essas duas medidas são importantes na fase de exploração dos dados porque elas:

  1. Levam em conta a contribuição independente de cada variável para o resultado.
  2. Detetam relações lineares e não lineares com a veriável resposta
  3. Classificam as variáveis em termos de força preditiva “univariada”.
  4. Visualize as correlações entre as variáveis preditivas e o resultado binário.
  5. Comparam perfeitamente a força de variáveis contínuas e categóricas sem criar variáveis fictícias.
  6. Tratam perfeitamente de dados faltantes (missing) sem imputação.
  7. Avaliam o poder preditivo dos dados faltantes.

WOE e IV são conceitos relacionados e foram gestados na teoria da informação a fim de medir o grau de incerteza envolvido na predição de eventos, dados os diferentes graus de conhecimento sobre as variáveis envolvidas. Em poucas palavras WOE descreve a relação entre uma variável preditiva e a variável binária alvo, no caso a decisão judicial, Por sua vez IV mede a força dessa relação.

WOE describes the relationship between a predictive variable and a binary target variable.

A tabela a seguir mostra os resultados

• Variável – nome da variável

• Decisão - Variável resposta (decisão judicial)

• classe – classe da variável

• out0 – Número de procedentes

• out1 – Número de improcedentes

• Total – Total de respostas para cada categoria

• pe_1 – procedentes / total de procedentes (em percentual)

• pe_0 – improcedentes / total de improcedentes (em percentual)

• odds – pe_1/pe_0

• woe – Peso da evidência (Weight of Evidence), calculado com o logarítimo natural de odds.

• iv – Valor da informação (Information Value) - woe * (pe_0 – pe_1)

##             Variable  Target                          Class Out_1 Out_0
## 1             agravo decisao                            não  2579  1793
## 2             agravo decisao                            sim   106  1892
## 3           novo_cpc decisao                       CPC/1973  1822  1966
## 4           novo_cpc decisao                       CPC/2015   863  1719
## 5                adc decisao                            não  2680  3644
## 6                adc decisao                            sim     5    41
## 7                adi decisao                            não  1985  2506
## 8                adi decisao                            sim   700  1179
## 9               adpf decisao                            não  2539  3489
## 10              adpf decisao                            sim   146   196
## 11                re decisao                            não  2374  3204
## 12                re decisao                            sim   311   481
## 13            sumula decisao                            não  2309  3044
## 14            sumula decisao                            sim   376   641
## 15           assunto decisao                          CIVIL     9    67
## 16           assunto decisao             CIVIL E CONSUMIDOR     3     5
## 17           assunto decisao                     CONSUMIDOR    19    26
## 18           assunto decisao              DIREITO DO ESTADO   424   841
## 19           assunto decisao                             NA    31    87
## 20           assunto decisao         PENAL E PROCESSO PENAL   199   347
## 21           assunto decisao PROCESSUAL CIVIL E DO TRABALHO  1062  1449
## 22           assunto decisao                       TRABALHO     5    80
## 23           assunto decisao      TRABALHO E PREVIDENCIÁRIO   933   783
## 24          segmento decisao                      eleitoral     3    32
## 25          segmento decisao                       estadual   552  1376
## 26          segmento decisao                        federal   223   377
## 27          segmento decisao                            stj    40   153
## 28          segmento decisao                       trabalho  1867  1747
## 29         instancia decisao                       primeira   637  1080
## 30         instancia decisao                        segunda  1498  1915
## 31         instancia decisao                       superior   550   690
## 32         paradigma decisao           controle_concentrado   738  1255
## 33         paradigma decisao                   inter_partes  1441  1638
## 34         paradigma decisao                           rext   218   286
## 35         paradigma decisao                         sumula   288   506
## 36 efeito_vinculante decisao                 nao_vinculante  1441  1638
## 37 efeito_vinculante decisao                     vinculante  1244  2047
##    TOTAL Per_1 Per_0  Odds    WOE    IV      Ref_1        Ref_0
## 1   4372 0.961 0.487 1.973  0.680 0.322 procedente improcedente
## 2   1998 0.039 0.513 0.076 -2.577 1.221 procedente improcedente
## 3   3788 0.679 0.534 1.272  0.241 0.035 procedente improcedente
## 4   2582 0.321 0.466 0.689 -0.373 0.054 procedente improcedente
## 5   6324 0.998 0.989 1.009  0.009 0.000 procedente improcedente
## 6     46 0.002 0.011 0.182 -1.704 0.015 procedente improcedente
## 7   4491 0.739 0.680 1.087  0.083 0.005 procedente improcedente
## 8   1879 0.261 0.320 0.816 -0.203 0.012 procedente improcedente
## 9   6028 0.946 0.947 0.999 -0.001 0.000 procedente improcedente
## 10   342 0.054 0.053 1.019  0.019 0.000 procedente improcedente
## 11  5578 0.884 0.869 1.017  0.017 0.000 procedente improcedente
## 12   792 0.116 0.131 0.885 -0.122 0.002 procedente improcedente
## 13  5353 0.860 0.826 1.041  0.040 0.001 procedente improcedente
## 14  1017 0.140 0.174 0.805 -0.217 0.007 procedente improcedente
## 15    76 0.003 0.018 0.167 -1.790 0.027 procedente improcedente
## 16     8 0.001 0.001 1.000  0.000 0.000 procedente improcedente
## 17    45 0.007 0.007 1.000  0.000 0.000 procedente improcedente
## 18  1265 0.158 0.228 0.693 -0.367 0.026 procedente improcedente
## 19   118 0.012 0.024 0.500 -0.693 0.008 procedente improcedente
## 20   546 0.074 0.094 0.787 -0.240 0.005 procedente improcedente
## 21  2511 0.396 0.393 1.008  0.008 0.000 procedente improcedente
## 22    85 0.002 0.022 0.091 -2.397 0.048 procedente improcedente
## 23  1716 0.347 0.212 1.637  0.493 0.067 procedente improcedente
## 24    35 0.001 0.009 0.111 -2.198 0.018 procedente improcedente
## 25  1928 0.206 0.373 0.552 -0.594 0.099 procedente improcedente
## 26   600 0.083 0.102 0.814 -0.206 0.004 procedente improcedente
## 27   193 0.015 0.042 0.357 -1.030 0.028 procedente improcedente
## 28  3614 0.695 0.474 1.466  0.383 0.085 procedente improcedente
## 29  1717 0.237 0.293 0.809 -0.212 0.012 procedente improcedente
## 30  3413 0.558 0.520 1.073  0.070 0.003 procedente improcedente
## 31  1240 0.205 0.187 1.096  0.092 0.002 procedente improcedente
## 32  1993 0.275 0.341 0.806 -0.216 0.014 procedente improcedente
## 33  3079 0.537 0.445 1.207  0.188 0.017 procedente improcedente
## 34   504 0.081 0.078 1.038  0.037 0.000 procedente improcedente
## 35   794 0.107 0.137 0.781 -0.247 0.007 procedente improcedente
## 36  3079 0.537 0.445 1.207  0.188 0.017 procedente improcedente
## 37  3291 0.463 0.555 0.834 -0.182 0.017 procedente improcedente

Para facilitar a interpretação dos resultados, tome-se em consideração os seguintes critérios:

Se o IV é menor que 0.03 então o poder preditivo é = “Não preditivo”

Se o IV está de 0.3 para 0.1 então o poder preditivo é = “Moderadamente preditivo”

Se o IV está de 0.1 para 0.3 então o poder preditivo é = “Medianamente preditivo”

Se o IV é maior que > 0.3 então o poder preditivo é = “Altamente preditivo”

(
stat<-ExpCatStat(rcl_dataset,Target="decisao",Label="Decisões",result = "Stat",clim=15,Pclass="procedente")
)
##             Variable  Target Unique Chi-squared p-value df IV Value
## 1             agravo decisao      2    1618.558       0  1    1.543
## 2     orgao_julgador decisao     13    2823.568       0 12    2.803
## 3           novo_cpc decisao      2     135.015       0  1    0.089
## 4                adc decisao      2      17.324       0  1    0.015
## 5                adi decisao      2      25.925       0  1    0.017
## 6               adpf decisao      2       0.023    0.88  1        0
## 7                 re decisao      2        2.95   0.086  1    0.002
## 8             sumula decisao      2      13.062       0  1    0.008
## 9            assunto decisao      9     224.957       0  7    0.181
## 10          segmento decisao      5      337.19       0  4    0.234
## 11         instancia decisao      3      24.675       0  2    0.017
## 12         paradigma decisao      4      60.246       0  3    0.038
## 13 efeito_vinculante decisao      2      52.484       0  1    0.034
##    Cramers V Degree of Association    Predictive Power
## 1        0.5                Strong   Highly Predictive
## 2       0.67                Strong   Highly Predictive
## 3       0.15                  Weak      Not Predictive
## 4       0.05             Very Weak      Not Predictive
## 5       0.06             Very Weak      Not Predictive
## 6          0             Very Weak      Not Predictive
## 7       0.02             Very Weak      Not Predictive
## 8       0.05             Very Weak      Not Predictive
## 9       0.19              Moderate Somewhat Predictive
## 10      0.23              Moderate   Medium Predictive
## 11      0.06             Very Weak      Not Predictive
## 12       0.1                  Weak      Not Predictive
## 13      0.09                  Weak      Not Predictive

Fluxo dos processo

O gráfico abaixo mostra o fluxo dos processos tomando em conta cada uma das variáveis. Cada linha, roxa ou laranja, representa uma reclamação. A cor laranja representa o conjunto dos pedidos procedentes, a cor roxa representa o conjunto dos pedidos improcedentes. As variáveis foram ordenadas conforme a frequência com que decidem favoravelmente ou desfavoravelmete.

Da visualização, é possível observar que as decisões colegiadas, i.e. decisões dos agravos, são maiormente improcedentes. Com efeito, do total, 1884 decisões colegiadas foram improcedentes e apenas 51 foram procedentes. Uma vez que essas decisão são regularmente proferidas ante de uma irresignação contra uma decisão monocrática, é possível afirmar com tranquilidade nesse caso, e não precisaríamos de qualquer teste estatístico para concluir isso, que as decisões colegiadas assumem papel nitidamente homologatório das decisões monocráticas.

Por outro lado, os ministros Alexandre de Moraes, Gilmar Mendes e Marco Aurélio lideram entre aqueles que mais concedem pedidos. Houve mais concessões após o CPC 2015 e a justiça do trabalho é aparentemente a mais resistente. Por sua vez, as reclamações contra supostas violações de súmulas não são tão bem sucedidas quanto as reclamações contra supostas violações de recursos extraordinários e decisões interpartes.

knitr::include_graphics("https://apps.consudata.com.br/shiny/gg_alluvial.png")

A tabela abaixo mostra as diferentes entre os órgãos julgadores em números

## # A tibble: 26 x 3
##    orgao_julgador      decisao          n
##    <fct>               <fct>        <int>
##  1 Alexandre de Moraes procedente     222
##  2 Alexandre de Moraes improcedente    91
##  3 Cármen Lúcia        procedente     281
##  4 Cármen Lúcia        improcedente   126
##  5 Celso de Mello      improcedente   188
##  6 Celso de Mello      procedente      28
##  7 Colegiada           improcedente  1895
##  8 Colegiada           procedente      51
##  9 Dias Toffoli        procedente     349
## 10 Dias Toffoli        improcedente   141
## # … with 16 more rows

Referências

Grimmer, Justin, and Brandon M Stewart. 2013. “Text as Data: The Promise and Pitfalls of Automatic Content Analysis Methods for Political Texts.” Political Analysis 21 (3). Cambridge University Press: 267–97.

Pearson, Ronald K. 2018. Exploratory Data Analysis Using R. CRC Press.

Silva, Glauco Peres da. 2018. “Desenho de Pesquisa.” Escola Nacional de Administração Pública (Enap).